home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / awt / Choice.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  5.8 KB  |  295 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.ItemEvent;
  4. import java.awt.event.ItemListener;
  5. import java.awt.peer.ChoicePeer;
  6. import java.io.IOException;
  7. import java.io.ObjectInputStream;
  8. import java.io.ObjectOutputStream;
  9. import java.util.EventListener;
  10. import java.util.Vector;
  11. import javax.accessibility.Accessible;
  12. import javax.accessibility.AccessibleContext;
  13.  
  14. public class Choice extends Component implements ItemSelectable, Accessible {
  15.    Vector pItems;
  16.    int selectedIndex = -1;
  17.    transient ItemListener itemListener;
  18.    private static final String base = "choice";
  19.    private static int nameCounter = 0;
  20.    private static final long serialVersionUID = -4075310674757313071L;
  21.    private int choiceSerializedDataVersion = 1;
  22.  
  23.    public Choice() throws HeadlessException {
  24.       GraphicsEnvironment.checkHeadless();
  25.       this.pItems = new Vector();
  26.    }
  27.  
  28.    String constructComponentName() {
  29.       synchronized(this.getClass()) {
  30.          return "choice" + nameCounter++;
  31.       }
  32.    }
  33.  
  34.    public void addNotify() {
  35.       synchronized(this.getTreeLock()) {
  36.          if (this.peer == null) {
  37.             this.peer = this.getToolkit().createChoice(this);
  38.          }
  39.  
  40.          super.addNotify();
  41.       }
  42.    }
  43.  
  44.    public int getItemCount() {
  45.       return this.countItems();
  46.    }
  47.  
  48.    /** @deprecated */
  49.    @Deprecated
  50.    public int countItems() {
  51.       return this.pItems.size();
  52.    }
  53.  
  54.    public String getItem(int var1) {
  55.       return this.getItemImpl(var1);
  56.    }
  57.  
  58.    final String getItemImpl(int var1) {
  59.       return (String)this.pItems.elementAt(var1);
  60.    }
  61.  
  62.    public void add(String var1) {
  63.       this.addItem(var1);
  64.    }
  65.  
  66.    public void addItem(String var1) {
  67.       synchronized(this) {
  68.          this.insertNoInvalidate(var1, this.pItems.size());
  69.       }
  70.  
  71.       if (this.valid) {
  72.          this.invalidate();
  73.       }
  74.  
  75.    }
  76.  
  77.    private void insertNoInvalidate(String var1, int var2) {
  78.       if (var1 == null) {
  79.          throw new NullPointerException("cannot add null item to Choice");
  80.       } else {
  81.          this.pItems.insertElementAt(var1, var2);
  82.          ChoicePeer var3 = (ChoicePeer)this.peer;
  83.          if (var3 != null) {
  84.             var3.addItem(var1, var2);
  85.          }
  86.  
  87.          if (this.selectedIndex < 0 || this.selectedIndex >= var2) {
  88.             this.select(0);
  89.          }
  90.  
  91.       }
  92.    }
  93.  
  94.    public void insert(String var1, int var2) {
  95.       synchronized(this) {
  96.          if (var2 < 0) {
  97.             throw new IllegalArgumentException("index less than zero.");
  98.          }
  99.  
  100.          var2 = Math.min(var2, this.pItems.size());
  101.          this.insertNoInvalidate(var1, var2);
  102.       }
  103.  
  104.       if (this.valid) {
  105.          this.invalidate();
  106.       }
  107.  
  108.    }
  109.  
  110.    public void remove(String var1) {
  111.       synchronized(this) {
  112.          int var3 = this.pItems.indexOf(var1);
  113.          if (var3 < 0) {
  114.             throw new IllegalArgumentException("item " + var1 + " not found in choice");
  115.          }
  116.  
  117.          this.removeNoInvalidate(var3);
  118.       }
  119.  
  120.       if (this.valid) {
  121.          this.invalidate();
  122.       }
  123.  
  124.    }
  125.  
  126.    public void remove(int var1) {
  127.       synchronized(this) {
  128.          this.removeNoInvalidate(var1);
  129.       }
  130.  
  131.       if (this.valid) {
  132.          this.invalidate();
  133.       }
  134.  
  135.    }
  136.  
  137.    private void removeNoInvalidate(int var1) {
  138.       this.pItems.removeElementAt(var1);
  139.       ChoicePeer var2 = (ChoicePeer)this.peer;
  140.       if (var2 != null) {
  141.          var2.remove(var1);
  142.       }
  143.  
  144.       if (this.pItems.size() == 0) {
  145.          this.selectedIndex = -1;
  146.       } else if (this.selectedIndex == var1) {
  147.          this.select(0);
  148.       } else if (this.selectedIndex > var1) {
  149.          this.select(this.selectedIndex - 1);
  150.       }
  151.  
  152.    }
  153.  
  154.    public void removeAll() {
  155.       synchronized(this) {
  156.          if (this.peer != null) {
  157.             ((ChoicePeer)this.peer).removeAll();
  158.          }
  159.  
  160.          this.pItems.removeAllElements();
  161.          this.selectedIndex = -1;
  162.       }
  163.  
  164.       if (this.valid) {
  165.          this.invalidate();
  166.       }
  167.  
  168.    }
  169.  
  170.    public synchronized String getSelectedItem() {
  171.       return this.selectedIndex >= 0 ? this.getItem(this.selectedIndex) : null;
  172.    }
  173.  
  174.    public synchronized Object[] getSelectedObjects() {
  175.       if (this.selectedIndex >= 0) {
  176.          Object[] var1 = new Object[]{this.getItem(this.selectedIndex)};
  177.          return var1;
  178.       } else {
  179.          return null;
  180.       }
  181.    }
  182.  
  183.    public int getSelectedIndex() {
  184.       return this.selectedIndex;
  185.    }
  186.  
  187.    public synchronized void select(int var1) {
  188.       if (var1 < this.pItems.size() && var1 >= 0) {
  189.          if (this.pItems.size() > 0) {
  190.             this.selectedIndex = var1;
  191.             ChoicePeer var2 = (ChoicePeer)this.peer;
  192.             if (var2 != null) {
  193.                var2.select(var1);
  194.             }
  195.          }
  196.  
  197.       } else {
  198.          throw new IllegalArgumentException("illegal Choice item position: " + var1);
  199.       }
  200.    }
  201.  
  202.    public synchronized void select(String var1) {
  203.       int var2 = this.pItems.indexOf(var1);
  204.       if (var2 >= 0) {
  205.          this.select(var2);
  206.       }
  207.  
  208.    }
  209.  
  210.    public synchronized void addItemListener(ItemListener var1) {
  211.       if (var1 != null) {
  212.          this.itemListener = AWTEventMulticaster.add(this.itemListener, var1);
  213.          this.newEventsOnly = true;
  214.       }
  215.    }
  216.  
  217.    public synchronized void removeItemListener(ItemListener var1) {
  218.       if (var1 != null) {
  219.          this.itemListener = AWTEventMulticaster.remove(this.itemListener, var1);
  220.       }
  221.    }
  222.  
  223.    public synchronized ItemListener[] getItemListeners() {
  224.       return (ItemListener[])this.getListeners(ItemListener.class);
  225.    }
  226.  
  227.    public <T extends EventListener> T[] getListeners(Class<T> var1) {
  228.       Object var2 = null;
  229.       if (var1 == ItemListener.class) {
  230.          ItemListener var3 = this.itemListener;
  231.          return (T[])AWTEventMulticaster.getListeners(var3, var1);
  232.       } else {
  233.          return (T[])super.getListeners(var1);
  234.       }
  235.    }
  236.  
  237.    boolean eventEnabled(AWTEvent var1) {
  238.       if (var1.id == 701) {
  239.          return (this.eventMask & 512L) != 0L || this.itemListener != null;
  240.       } else {
  241.          return super.eventEnabled(var1);
  242.       }
  243.    }
  244.  
  245.    protected void processEvent(AWTEvent var1) {
  246.       if (var1 instanceof ItemEvent) {
  247.          this.processItemEvent((ItemEvent)var1);
  248.       } else {
  249.          super.processEvent(var1);
  250.       }
  251.    }
  252.  
  253.    protected void processItemEvent(ItemEvent var1) {
  254.       ItemListener var2 = this.itemListener;
  255.       if (var2 != null) {
  256.          var2.itemStateChanged(var1);
  257.       }
  258.  
  259.    }
  260.  
  261.    protected String paramString() {
  262.       return super.paramString() + ",current=" + this.getSelectedItem();
  263.    }
  264.  
  265.    private void writeObject(ObjectOutputStream var1) throws IOException {
  266.       var1.defaultWriteObject();
  267.       AWTEventMulticaster.save(var1, "itemL", this.itemListener);
  268.       var1.writeObject((Object)null);
  269.    }
  270.  
  271.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException, HeadlessException {
  272.       GraphicsEnvironment.checkHeadless();
  273.       var1.defaultReadObject();
  274.  
  275.       Object var2;
  276.       while(null != (var2 = var1.readObject())) {
  277.          String var3 = ((String)var2).intern();
  278.          if ("itemL" == var3) {
  279.             this.addItemListener((ItemListener)var1.readObject());
  280.          } else {
  281.             var1.readObject();
  282.          }
  283.       }
  284.  
  285.    }
  286.  
  287.    public AccessibleContext getAccessibleContext() {
  288.       if (this.accessibleContext == null) {
  289.          this.accessibleContext = new AccessibleAWTChoice(this);
  290.       }
  291.  
  292.       return this.accessibleContext;
  293.    }
  294. }
  295.